<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>InfAdoptedUndoGrouping</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.0">
<link rel="home" href="index.html" title="libinfinity-0.4 Reference Manual">
<link rel="up" href="ch03.html" title="Libinfinity's adOPTed implementation">
<link rel="prev" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm">
<link rel="next" href="InfAdoptedRequestLog.html" title="InfAdoptedRequestLog">
<meta name="generator" content="GTK-Doc V1.15 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="InfAdoptedAlgorithm.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch03.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">libinfinity-0.4 Reference Manual</th>
<td><a accesskey="n" href="InfAdoptedRequestLog.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#InfAdoptedUndoGrouping.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#InfAdoptedUndoGrouping.description" class="shortcut">Description</a>
                   | 
                  <a href="#InfAdoptedUndoGrouping.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#InfAdoptedUndoGrouping.properties" class="shortcut">Properties</a>
                   | 
                  <a href="#InfAdoptedUndoGrouping.signals" class="shortcut">Signals</a>
</td></tr>
</table>
<div class="refentry" title="InfAdoptedUndoGrouping">
<a name="InfAdoptedUndoGrouping"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="InfAdoptedUndoGrouping.top_of_page"></a>InfAdoptedUndoGrouping</span></h2>
<p>InfAdoptedUndoGrouping — Grouping of requests to be undone simultaneously</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" title="Stability Level">
<a name="InfAdoptedUndoGrouping.stability-level"></a><h2>Stability Level</h2>
Unstable, unless otherwise indicated
</div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="InfAdoptedUndoGrouping.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;libinfinity/adopted/inf-adopted-undo-grouping.h&gt;

                    <a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-struct" title="InfAdoptedUndoGrouping">InfAdoptedUndoGrouping</a>;
                    <a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGroupingClass" title="InfAdoptedUndoGroupingClass">InfAdoptedUndoGroupingClass</a>;
<a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="returnvalue">InfAdoptedUndoGrouping</span></a> * <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-new" title="inf_adopted_undo_grouping_new ()">inf_adopted_undo_grouping_new</a>  (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="returnvalue">InfAdoptedAlgorithm</span></a> * <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-get-algorithm" title="inf_adopted_undo_grouping_get_algorithm ()">inf_adopted_undo_grouping_get_algorithm</a>
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-set-algorithm" title="inf_adopted_undo_grouping_set_algorithm ()">inf_adopted_undo_grouping_set_algorithm</a>
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a> *algorithm</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfAdoptedUser.html" title="InfAdoptedUser"><span class="type">InfAdoptedUser</span></a> *user</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-start-group" title="inf_adopted_undo_grouping_start_group ()">inf_adopted_undo_grouping_start_group</a>
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allow_group_with_prev</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-end-group" title="inf_adopted_undo_grouping_end_group ()">inf_adopted_undo_grouping_end_group</a> (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allow_group_with_next</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-get-undo-size" title="inf_adopted_undo_grouping_get_undo_size ()">inf_adopted_undo_grouping_get_undo_size</a>
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-get-redo-size" title="inf_adopted_undo_grouping_get_redo_size ()">inf_adopted_undo_grouping_get_redo_size</a>
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);
</pre>
</div>
<div class="refsect1" title="Object Hierarchy">
<a name="InfAdoptedUndoGrouping.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----InfAdoptedUndoGrouping
</pre>
</div>
<div class="refsect1" title="Properties">
<a name="InfAdoptedUndoGrouping.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping--algorithm" title='The "algorithm" property'>algorithm</a>"                <a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a>*  : Read / Write
  "<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping--user" title='The "user" property'>user</a>"                     <a class="link" href="InfAdoptedUser.html" title="InfAdoptedUser"><span class="type">InfAdoptedUser</span></a>*       : Read / Write
</pre>
</div>
<div class="refsect1" title="Signals">
<a name="InfAdoptedUndoGrouping.signals"></a><h2>Signals</h2>
<pre class="synopsis">
  "<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-group-requests" title='The "group-requests" signal'>group-requests</a>"                                 : Run Last
</pre>
</div>
<div class="refsect1" title="Description">
<a name="InfAdoptedUndoGrouping.description"></a><h2>Description</h2>
<p>
<a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> groups related requests together so that they can
be undone at the same time. For example, Undo in a text editor is normally
expected to operate on written words, not characters. Therefore, multiple
requests need to be undone at once.
</p>
<p>
The undo grouping helps with this. Everytime it needs to decide whether two
requests should be grouped it emits
<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-group-requests" title='The "group-requests" signal'><span class="type">"group-requests"</span></a>. If the signal handler returns
<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> then the two requests will be undone at the same time, otherwise not.
</p>
<p>
It is also possible to explicitely group a bunch of requests that would
not be grouped otherwise, by calling <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-start-group" title="inf_adopted_undo_grouping_start_group ()"><code class="function">inf_adopted_undo_grouping_start_group()</code></a>
and <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-end-group" title="inf_adopted_undo_grouping_end_group ()"><code class="function">inf_adopted_undo_grouping_end_group()</code></a> before and after issuing the
requests, respectively.
</p>
<p>
The default signal handler always returns <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. However, this behaviour
can be changed in derived classes.
</p>
</div>
<div class="refsect1" title="Details">
<a name="InfAdoptedUndoGrouping.details"></a><h2>Details</h2>
<div class="refsect2" title="InfAdoptedUndoGrouping">
<a name="InfAdoptedUndoGrouping-struct"></a><h3>InfAdoptedUndoGrouping</h3>
<pre class="programlisting">typedef struct _InfAdoptedUndoGrouping InfAdoptedUndoGrouping;</pre>
<p>
<a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> is an opaque data type. You should only access it via
the public API functions.
</p>
</div>
<hr>
<div class="refsect2" title="InfAdoptedUndoGroupingClass">
<a name="InfAdoptedUndoGroupingClass"></a><h3>InfAdoptedUndoGroupingClass</h3>
<pre class="programlisting">typedef struct {
  gboolean (*group_requests)(InfAdoptedUndoGrouping* grouping,
                             InfAdoptedRequest* first,
                             InfAdoptedRequest* second);
} InfAdoptedUndoGroupingClass;
</pre>
<p>
This structure contains default signal handlers for <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="structfield"><code><a name="InfAdoptedUndoGroupingClass.group-requests"></a>group_requests</code></em> ()</span></p></td>
<td>Default signal handler for the
<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-group-requests" title='The "group-requests" signal'><span class="type">"group-requests"</span></a> signal.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_new ()">
<a name="inf-adopted-undo-grouping-new"></a><h3>inf_adopted_undo_grouping_new ()</h3>
<pre class="programlisting"><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="returnvalue">InfAdoptedUndoGrouping</span></a> * inf_adopted_undo_grouping_new  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Creates a new <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>. To start grouping requests, set a
user whose requests to group via <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-set-algorithm" title="inf_adopted_undo_grouping_set_algorithm ()"><code class="function">inf_adopted_undo_grouping_set_algorithm()</code></a>.
Before doing so you might want to connect to
<a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-group-requests" title='The "group-requests" signal'><span class="type">"group-requests"</span></a>, so the user's initial requests can
be grouped correctly.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A new <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>, to be freed via <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a>.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_get_algorithm ()">
<a name="inf-adopted-undo-grouping-get-algorithm"></a><h3>inf_adopted_undo_grouping_get_algorithm ()</h3>
<pre class="programlisting"><a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="returnvalue">InfAdoptedAlgorithm</span></a> * inf_adopted_undo_grouping_get_algorithm
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);</pre>
<p>
Returns the <a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a> for <em class="parameter"><code>grouping</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>A <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> <em class="parameter"><code>grouping</code></em>'s algorithm.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_set_algorithm ()">
<a name="inf-adopted-undo-grouping-set-algorithm"></a><h3>inf_adopted_undo_grouping_set_algorithm ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_adopted_undo_grouping_set_algorithm
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a> *algorithm</code></em>,
                                                         <em class="parameter"><code><a class="link" href="InfAdoptedUser.html" title="InfAdoptedUser"><span class="type">InfAdoptedUser</span></a> *user</code></em>);</pre>
<p>
Sets the algorithm and user to group requests for. This function will group
all requests in user's request log, and also each new request that is
added to it's log. Requests that cannot be undone anymore (because
they are too old), will be correctly taken care off.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>A <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>algorithm</code></em> :</span></p></td>
<td>The <a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a> for the document to group requests,
or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user</code></em> :</span></p></td>
<td>The user for which to group requests, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Ignored if
<em class="parameter"><code>algorithm</code></em> is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_start_group ()">
<a name="inf-adopted-undo-grouping-start-group"></a><h3>inf_adopted_undo_grouping_start_group ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_adopted_undo_grouping_start_group
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allow_group_with_prev</code></em>);</pre>
<p>
Makes all requests issued after this call belong into the same group,
i.e. they will be undone at once. This can make sense for example when the
user copy+pastes something into the document which causes multiple requests
to be generated. A call to <a class="link" href="InfAdoptedUndoGrouping.html#inf-adopted-undo-grouping-end-group" title="inf_adopted_undo_grouping_end_group ()"><code class="function">inf_adopted_undo_grouping_end_group()</code></a> restores
the normal behavior.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>A <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allow_group_with_prev</code></em> :</span></p></td>
<td>Whether the new group can be part of the previous
group if <a class="link" href="InfAdoptedUndoGrouping.html#InfAdoptedUndoGrouping-group-requests" title='The "group-requests" signal'><span class="type">"group-requests"</span></a> allows.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_end_group ()">
<a name="inf-adopted-undo-grouping-end-group"></a><h3>inf_adopted_undo_grouping_end_group ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                inf_adopted_undo_grouping_end_group (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>,
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allow_group_with_next</code></em>);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>allow_group_with_next</code></em> :</span></p></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_get_undo_size ()">
<a name="inf-adopted-undo-grouping-get-undo-size"></a><h3>inf_adopted_undo_grouping_get_undo_size ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               inf_adopted_undo_grouping_get_undo_size
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);</pre>
<p>
Returns the number of requests to undo so that a whole group is being
undone.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>A <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The number of requests in the current undo group.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" title="inf_adopted_undo_grouping_get_redo_size ()">
<a name="inf-adopted-undo-grouping-get-redo-size"></a><h3>inf_adopted_undo_grouping_get_redo_size ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>               inf_adopted_undo_grouping_get_redo_size
                                                        (<em class="parameter"><code><a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping</code></em>);</pre>
<p>
Returns the number of requests to redo so that a whole group is being
redone.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>A <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a>.
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> The number of requests in the current redo group.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="Property Details">
<a name="InfAdoptedUndoGrouping.property-details"></a><h2>Property Details</h2>
<div class="refsect2" title='The "algorithm" property'>
<a name="InfAdoptedUndoGrouping--algorithm"></a><h3>The <code class="literal">"algorithm"</code> property</h3>
<pre class="programlisting">  "algorithm"                <a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a>*  : Read / Write</pre>
<p>The algorithm for which to group requests.</p>
</div>
<hr>
<div class="refsect2" title='The "user" property'>
<a name="InfAdoptedUndoGrouping--user"></a><h3>The <code class="literal">"user"</code> property</h3>
<pre class="programlisting">  "user"                     <a class="link" href="InfAdoptedUser.html" title="InfAdoptedUser"><span class="type">InfAdoptedUser</span></a>*       : Read / Write</pre>
<p>The user for which to group requests.</p>
</div>
</div>
<div class="refsect1" title="Signal Details">
<a name="InfAdoptedUndoGrouping.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2" title='The "group-requests" signal'>
<a name="InfAdoptedUndoGrouping-group-requests"></a><h3>The <code class="literal">"group-requests"</code> signal</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> *grouping,
                                                        <a class="link" href="InfAdoptedRequest.html" title="InfAdoptedRequest"><span class="type">InfAdoptedRequest</span></a>      *first,
                                                        <a class="link" href="InfAdoptedRequest.html" title="InfAdoptedRequest"><span class="type">InfAdoptedRequest</span></a>      *second,
                                                        <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)      : Run Last</pre>
<p>
This signal is emitted whenever the <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> needs to
decide whether to put two requests into the same undo group or not.
A signal handler should return <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if they belong into the same group
or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise. Note however that the two requests may not
immediately follow each other because other users may have issued
requests inbetween. Check the vector times of the requests to find out,
using <a class="link" href="InfAdoptedRequest.html#inf-adopted-request-get-vector" title="inf_adopted_request_get_vector ()"><code class="function">inf_adopted_request_get_vector()</code></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>grouping</code></em> :</span></p></td>
<td>The <a class="link" href="InfAdoptedUndoGrouping.html" title="InfAdoptedUndoGrouping"><span class="type">InfAdoptedUndoGrouping</span></a> which is about to group a request.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>first</code></em> :</span></p></td>
<td>The previous request.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>second</code></em> :</span></p></td>
<td>The current request.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1" title="See Also">
<a name="InfAdoptedUndoGrouping.see-also"></a><h2>See Also</h2>
<a class="link" href="InfAdoptedAlgorithm.html" title="InfAdoptedAlgorithm"><span class="type">InfAdoptedAlgorithm</span></a>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.15</div>
</body>
</html>